package com.hjy.ui

import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.Button
import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val rootLayout = findViewById<LinearLayout>(R.id.root)

        /**
         * 遍历应用中除当前Activity外的所有Activity，并为每个Activity创建一个按钮
         * 该函数会获取应用的包信息，过滤出所有Activity组件，然后动态创建按钮并添加到布局中
         *
         * @param packageName 当前应用的包名，用于获取包信息
         * @param rootLayout 用于添加按钮的根布局容器
         */
        packageManager.getPackageInfo(
            packageName,
            PackageManager.GET_ACTIVITIES
        ).activities?.forEach { activityInfo ->

            // 跳过当前Activity自身，避免创建跳转到自己的按钮
            if (activityInfo.name == this::class.java.name) {
                return@forEach
            }

            // 动态创建按钮并设置点击事件，用于跳转到对应的Activity
            val clazz = Class.forName(activityInfo.name)
            val button = Button(this).apply {
                isAllCaps = false
                text = clazz.simpleName
                setOnClickListener {
                    startActivity(Intent(this@MainActivity, clazz))
                }
            }
            rootLayout.addView(button)
        }
    }
}